package com.suke.czx.modules.task.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.suke.czx.common.utils.R;
import com.suke.czx.modules.task.entity.Task;
import com.suke.czx.modules.task.entity.TaskSearchBo;

/**
 * 应用模块名称: 任务
 * 代码描述: 任务业务层接口
 * copyright: AUZAR ALL RIGHTS RESERVED
 * company: AUZAR
 *
 * @author: 颜米晨
 * @date: 2021/09/11 17:30
 */
public interface TaskService extends IService<Task> {

    /**
     * 分页查询任务列表
     * @param taskSearchBo 查询BO
     * @return VO
     */
    R pageTaskList(TaskSearchBo taskSearchBo);

    /**
     * 保存任务
     * @param task 任务
     * @param userId 操作人员编码
     * @return VO
     */
    R saveTask(Task task, Long userId);

    /**
     * 删除任务
     * @param taskId 任务编码
     * @param userId 操作者编码
     * @return VO
     */
    R updateDelTask(Long taskId, Long userId);

    /**
     * 二级任务状态
     * @param taskId 任务编码
     * @param taskLevel 任务级别
     * @param progress 二级任务状态
     * @param userId 操作者编码
     * @return VO
     */
    R updateTaskProgress(Long taskId, Integer taskLevel, Integer progress, Long userId);

    /**
     * 三级任务状态
     * @param taskId 任务编码
     * @param taskLevel 任务级别
     * @param status 三级任务状态
     * @param userId 操作者编码
     * @return VO
     */
    R updateTaskStatus(Long taskId, Integer taskLevel, Integer status, Long userId);

}